In storage technology, a storage server (or “storage system”) is a processing system that provides one or more storage clients with access (e.g., read and write access) to a mass storage facility over a network. Such a system is called a network storage system. In other words, a storage server is adapted to store and retrieve data on behalf of one or more client processing systems (“clients” or “hosts”) in response to requests received from the hosts. At least some storage servers can provide clients with both file-level access and block-level access to data stored in storage devices (e.g., disks, solid-state drives, etc.). For convenience, a storage server will be described herein, for the most part, in terms of storage devices that provide file-level access, although the description herein also has application to storage systems that provide block-level access, as will be apparent to those of ordinary skill in the art. Examples of such storage servers include a file server or another type of computing device that provides storage services using a file system to respond to file-oriented data access requests (“filer”). A storage server includes a storage operating system that implements a file system to logically organize the information as a hierarchical structure of directories and files on the storage devices. A “file system” as discussed herein is a structured set of logical containers of data, which may be, but are not necessarily, in the form of files, directories, logical units and/or other type(s) of logical containers. Each file stored on a disk or other type of storage device may be implemented as a set of data structures, e.g., disk blocks, that are configured to store information.
The storage server can include a storage sub-system that may include a storage stack containing multiple hardware and software components. For example, a typical storage stack may include multiple storage shelves. The storage shelves can contain multiple mass storage devices, e.g., magnetic hard drives, solid state drives, tape data storage, or other data storage devices. The storage shelves can be connected in a linear chain fashion. However, the number of shelves in the storage stack (the “depth”) is limited to approximately 10, due to the exponential increase of data access latency as the depth increases. The deeper a storage shelf is in the linear chain, the exponentially larger the data access latency generally is. Therefore, the storage size of the storage system is limited by the number of shelves in the storage stack and the number of mass storage devices in each storage shelf.